package org.upo.eps.it.phama.bean;

import java.io.Serializable;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import static javax.persistence.GenerationType.IDENTITY;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlTransient;
import javax.xml.bind.annotation.XmlType;

@Entity
@Table(name="far_direccion", catalog="phama")
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "direccion", propOrder = {})
public class Direccion  implements Serializable {

     @Id 
     @GeneratedValue(strategy=IDENTITY)
     @Column(name="ID_DIRECCION", unique=true, nullable=false)
     private Integer idDireccion;
     
     @Column(name="DOMICILIO")
     private String domicilio;
     
     @Column(name="POBLACION")     
     private String poblacion;
     
     @Column(name="PROVINCIA")     
     private String provincia;
     
     @Column(name="CP", length=5)
     private String cp;
     
     @OneToMany(cascade=CascadeType.ALL, fetch=FetchType.LAZY, mappedBy="direccion")
     @XmlTransient
     private Set<Proveedor> misProveedores = new HashSet<>(0);
     
     @OneToMany(cascade=CascadeType.ALL, fetch=FetchType.LAZY, mappedBy="direccion")
     @XmlTransient
     private Set<Cliente> misClientes = new HashSet<>(0);
     
     @OneToMany(cascade=CascadeType.ALL, fetch=FetchType.LAZY, mappedBy="direccion")
     @XmlTransient
     private Set<Empleado> misEmpleados = new HashSet<>(0);
     
     @OneToMany(cascade=CascadeType.ALL, fetch=FetchType.LAZY, mappedBy="direccion")
     @XmlTransient
     private Set<Almacen> misAlmacenes = new HashSet<>(0);

     //<editor-fold defaultstate="collapsed" desc="constructors">
     public Direccion() {
     }
     
     public Direccion( String domicilio, String poblacion, String provincia, String cp) {
         this.domicilio = domicilio;
         this.poblacion = poblacion;
         this.provincia = provincia;
         this.cp = cp;
     }
     
     public Direccion(String domicilio, String poblacion, String provincia, String cp, Set<Proveedor> misProveedores, Set<Cliente> misClientes, Set<Empleado> misEmpleados, Set<Almacen> misAlmacenes) {
         this.domicilio = domicilio;
         this.poblacion = poblacion;
         this.provincia = provincia;
         this.cp = cp;
         this.misProveedores = misProveedores;
         this.misClientes = misClientes;
         this.misEmpleados = misEmpleados;
         this.misAlmacenes = misAlmacenes;
     }
     //</editor-fold>
      
     //<editor-fold defaultstate="collapsed" desc="getters & setters">
     public Integer getIdDireccion() {
         return this.idDireccion;
     }
     
     public void setIdDireccion(Integer idDireccion) {
         this.idDireccion = idDireccion;
     }
     
     public String getDomicilio() {
         return this.domicilio;
     }
     
     public void setDomicilio(String domicilio) {
         this.domicilio = domicilio;
     }
     
     public String getPoblacion() {
         return this.poblacion;
     }
     
     public void setPoblacion(String poblacion) {
         this.poblacion = poblacion;
     }
     
     public String getProvincia() {
         return this.provincia;
     }
     
     public void setProvincia(String provincia) {
         this.provincia = provincia;
     }
     
     public String getCp() {
         return this.cp;
     }
     
     public void setCp(String cp) {
         this.cp = cp;
     }
     
     public Set<Proveedor> getMisProveedores() {
         return this.misProveedores;
     }
     
     public void setMisProveedores(Set<Proveedor> misProveedores) {
         this.misProveedores = misProveedores;
     }
     
     public Set<Cliente> getMisClientes() {
         return this.misClientes;
     }
     
     public void setMisClientes(Set<Cliente> misClientes) {
         this.misClientes = misClientes;
     }
     
     public Set<Empleado> getMisEmpleados() {
         return this.misEmpleados;
     }
     
     public void setMisEmpleados(Set<Empleado> misEmpleados) {
         this.misEmpleados = misEmpleados;
     }
     
     public Set<Almacen> getMisAlmacenes() {
         return this.misAlmacenes;
     }
     
     public void setMisAlmacenes(Set<Almacen> misAlmacenes) {
         this.misAlmacenes = misAlmacenes;
     }
     //</editor-fold>

}


